package com.hejia.bulbul.service;

import java.util.Date;
import java.util.List;

import com.hejia.alauda.utils.Pager;
import com.hejia.bulbul.entity.ChannelAnalyse;
import com.hejia.bulbul.entity.ChannelDayStatistic;
import com.hejia.bulbul.entity.ChannelStatistic;

/**
 * 渠道统计服务
 * @author hyr
 *
 */
public interface ChannelStatisticService {

	/**
	 * 统计渠道数据
	 * @param name		渠道名称
	 * @param startDate	开始时间
	 * @param endDate	结束时间
	 * @param pager		分页
	 * @return			渠道统计数据
	 */
	Pager<ChannelStatistic> statisticChannels(String name, Date startDate, Date endDate, Pager<ChannelStatistic> pager);

	/**
	 * 分析渠道数据
	 * @param biggerCategoryId	大类ID
	 * @param categoryId		类别ID
	 * @param popularizeId		推广ID
	 * @param number			渠道号
	 * @param startDate	开始日期
	 * @param endDate	结束日期
	 * @return
	 */
	ChannelAnalyse analyseChannel(
			Long biggerCategoryId, 
			Long categoryId, 
			Long popularizeId, 
			String number,
			Date startDate, 
			Date endDate);

	/**
	 * 统计注册数据
	 * @param name		渠道名称
	 * @param startDate	开始时间
	 * @param endDate	结束时间
	 * @param pager		分页
	 * @return			注册数据
	 */
	Pager<ChannelStatistic> statisticRegister(String name, Date startDate, Date endDate, Pager<ChannelStatistic> pager);

	/**
	 * 统计渠道日数据
	 * @param biggerCategoryId	大类ID
	 * @param categoryId		类别ID
	 * @param popularizeId		推广ID
	 * @param number			渠道号
	 * @param startDate	开始日期
	 * @param endDate	结束日期
	 * @return	渠道日统计数据
	 */
	List<ChannelDayStatistic> countChannelDailyData(
			Long biggerCategoryId, 
			Long categoryId, 
			Long popularizeId, 
			String number,
			Date startDate, 
			Date endDate);

	/**
	 * 获取渠道名称
	 * @param biggerCategoryId	大类ID
	 * @param categoryId		类别ID
	 * @param popularizeId		推广ID
	 * @param number			渠道号
	 * @return			渠道名称
	 */
	String findChannelName(Long biggerCategoryId, Long categoryId, Long popularizeId, String number);
}
